iT邦幫忙

2022 iThome 鐵人賽

DAY 2
2
自我挑戰組

你也對開始使用typescript感到無力嗎?我也是 - 30天初探typescript系列 第 2

TypeScript作為一個語言(工具),要解決什麼問題?

  • 分享至 

  • xImage
  •  

在明後天進行相對枯燥的”型別”介紹前,我們必須知道JavaScript跟TypeScript的關係(我現在才意識到我鐵人賽的主題上,”T”ype”S”cript的T跟S忘了大寫,我的題目完全打錯了...),以及TypeScript這個語言(工具)之所以出現,是為了解決什麼樣的事情。

相信大家在學JavaScript的時候,一定都會讀到這麼一句話:「JavaScript 是個弱型別(loosely typed)語言」,如果你跟我一樣,一開始接觸就是JavaScript,一定會對這句話感到困惑,因為我們在寫一般JavaScript時,的確不需要去宣告一個變數的型別。但是例如C語言,就必須特地寫出”型別 變數 [=值]”。

int age; //但暫不給變數值,只宣告它是interger
int price = 200

但JavaScript就不是這一回事,我們可以:

let age = 18 //不用宣告任何型別,直接讓這變數age代表數字
age = “I’m not type of age” //從數字變成字串
age = { name : ”John” }  //從字串再變成物件
//這三行完全是合法的JS

我們完全不用在JS變數前面宣告:「這個變數必須是數字/字串/浮點數」,就能正常運作,甚至能切換成不同型別!酷吧!

但如果你是用const宣告,就另當別論了。
用const宣告後,去更改變數

講到這邊,大家有看出弱型別的問題嗎?(儘管我自己是很愛這種可變動性啦)

就算開發者看到let age = 18大概能依約定俗成去猜出age會是Number,且之後也會是Number(除了數字,我還真不知有什麼型別能/適合給age使用),但想要改age這個變數的型別是隨時隨地都可以的(雖然不會有人這麼白目去亂改啦)。而TypeScript作為一個"強型別"的語言(工具)就是為了要處理這個”不太穩定”的狀況而誕生的。

至於TypeScript確切要怎麼幫助身為開發者的我們,我們下一篇再聊。


上一篇
typescript鐵人賽第一天 - 前言
下一篇
呼叫function,讓TypeScript幫你監督引數
系列文
你也對開始使用typescript感到無力嗎?我也是 - 30天初探typescript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言